As the value and use of information continues to increase, individuals and businesses seek additional ways to process and store information. One option available to users is information handling systems. An information handling system generally processes, compiles, stores, and/or communicates information or data for business, personal, or other purposes thereby allowing users to take advantage of the value of the information. Because technology and information handling needs and requirements vary between different users or applications, information handling systems may also vary regarding what information is handled, how the information is handled, how much information is processed, stored, or communicated, and how quickly and efficiently the information may be processed, stored, or communicated. The variations in information handling systems allow for information handling systems to be general or configured for a specific user or specific use such as financial transaction processing, airline reservations, enterprise data storage, or global communications. In addition, information handling systems may include a variety of hardware and software components that may be configured to process, store, and communicate information and may include one or more computer systems, data storage systems, and networking systems.
Increasingly, information handling systems are deployed in architectures that allow multiple operating systems to run on a single information handling system. Labeled “virtualization,” this type of information handling system architecture decouples software from hardware and presents a logical view of physical hardware to software. In a virtualized information handling system, a single physical server may instantiate multiple, independent virtual servers. Server virtualization is enabled primarily by a piece of software (often referred to as a “hypervisor”) that provides a software layer between the server hardware and the multiple operating systems, also referred to as guest operating systems (guest OS). The hypervisor software provides a container that presents a logical hardware interface to the guest operating systems. An individual guest OS, along with various applications or other software executing under the guest OS, may be unaware that execution is occurring in a virtualized server environment (as opposed to a dedicated physical server). Such an instance of a guest OS executing under a hypervisor may be referred to as a “virtual machine” or “VM”.
Often, virtualized architectures may be employed for numerous reasons, such as, but not limited to: (1) increased hardware resource utilization; (2) cost-effective scalability across a common, standards-based infrastructure; (3) workload portability across multiple servers; (4) streamlining of application development by certifying to a common virtual interface rather than multiple implementations of physical hardware; and (5) encapsulation of complex configurations into a file that is easily replicated and provisioned, among other reasons. As noted above, the information handling system may include one or more operating systems, for example, executing as guest operating systems in respective virtual machines.
An operating system serves many functions, such as controlling access to hardware resources and controlling the execution of application software. Operating systems also provide resources and services to support application software. These resources and services may include data storage, support for at least one file system, a centralized configuration database (such as the registry found in Microsoft Windows operating systems), a directory service, a graphical user interface, a networking stack, device drivers, device management software, and memory. In some instances, services may be provided by other application software running on the information handling system, such as a database server.
One of the main disadvantages of a virtualized computing environment is that tools and practices for securing a physical information handling system infrastructure do not necessarily extend well to a virtual environment. A hypervisor of a host operating system upon which a virtual machine executed may have many vulnerabilities. Due to native virtualization architecture which may require specially configured hardware, most virtualization deployments are implemented with the hosted architecture. With vulnerabilities and security holes in most modern operating systems, malicious attacks can be carried out to gain control of the host operating system. Because the hypervisor is often a layer executing on the host operating system, once an attacker has control of a host operating system, the hypervisor is essentially compromised. Thus, an attacker may corrupt critical portions of virtual machines, including a virtual machine boot on memory namespaces (including, for example, persistent memory namespace such as non-volatile dual-inline memory module (NV-DIMM) namespaces) and can perform one or more malicious activities on any of the virtual machines hosted by the hypervisor.
Attacks on a hypervisor through a guest operating system may use the guest operating system to gain unauthorized access to other virtual namespaces on a memory module (e.g., NV-DIMM). Because many virtual machines may share the same physical resources (e.g., NV-DIMM namespaces), if an attacker is able to discover how one virtual machine's virtual resources map to physical resources, the attacker may be able to conduct attacks directly on the real physical resources. By modifying his virtual memory in a way that exploits how the physical resources are mapped to each virtual machine, the attacker may adversely affect multiple virtual machines and the hypervisor, and potentially all virtual machine and operating systems boots may fail.
Any small namespace attribute change may cause block input/output (I/O) issues in a namespace, and as a result, an entire virtual machine may fail to load/boot. A virtual machine has access only to read/write to namespace data areas but namespace attributes or metadata is often not accessible to a virtual machine because of security reasons. But the vulnerabilities of a hypervisor may allow an attacker to gain access to virtual machines to corrupt the namespace object data. Because NV-DIMM namespace labels and metadata objects are created within NV-DIMM storage space and maintained at the hypervisor level, such namespace labels and metadata objects are prone to corruption.